#define _USE_MATH_DEFINES

#include <iostream>
#include <cmath>
#include <vector>
#include <iomanip>
#include <random>

const double epsilon  = 1e-9;

struct Point {
    double x, y;

};

class Arc {
public:
    Arc(Point center, double radius) : center(center), radius(radius), startangle(0), endangle(0) {};

    double ToRadians(double degress){
        return degress * M_PI / 180.0;
    }
    bool FindInterSections(Point A, Point B, std::vector<Point>& intersections);

private:
    double startangle;
    double endangle;
    Point  center;
    double radius;



    double NormalizeAngle(double angle);

    bool IsPointInArc(Point p);

    Point ReflectPoint(Point d,Point p1);

    Point CalcularArcMidpoint();


};







double RandomDouble(double min, double max);


